import request from '@/config/axios'

// facebook广告组每日消耗 VO
export interface AdsetEverdayCostVO {
  costId: number // 广告账号每日消耗记录id
  advertiserId: number // 广告账号id
  advertiserName: string // 广告账号名称
  adsetId: number // 广告组id
  adsetName: string // 广告组名称
  productId: string // 商品id
  thatdayTimestamp: number // 当日时间戳
  thatdayDate: string // 当日日期
  thatdayTotalAmount: number // 当日总收入
  thatdayPaidTotalNum: number // 当日总支付笔数
  area: string // 地区
  spend: number // 广告花费金额（美元）
  spendForeign: number // 广告花费金额（外币）
  impressions: number // 展示数
  cpm: number // 千次展示成本=总消耗/展示数*1000
  clicks: number // 点击数
  ctr: number // 点击率=点击数/展示数
  cpc: number // 单次点击成本=总花费/点击数
  inlineLinkClicks: number // 链接点击数
  costPerInlineLinkClick: number // 链接点击的平均成本=花费/链接点击次数
  cpp: number // 预估1000人平均成本
  reach: number // 覆盖人数
  frequency: number // 频次
  purchaseRoas: number // 广告花费总回报(ROAS)-购物
  deptId: number // 部门id
  createName: string // 创建者名称
}

// facebook广告组每日消耗 API
export const AdsetEverdayCostApi = {
  // 查询facebook广告组每日消耗分页
  getAdsetEverdayCostPage: async (params: any) => {
    return await request.get({ url: `/facebook/adset-everday-cost/page`, params })
  },

  // 查询facebook广告组每日消耗详情
  getAdsetEverdayCost: async (id: number) => {
    return await request.get({ url: `/facebook/adset-everday-cost/get?id=` + id })
  },

  // 新增facebook广告组每日消耗
  createAdsetEverdayCost: async (data: AdsetEverdayCostVO) => {
    return await request.post({ url: `/facebook/adset-everday-cost/create`, data })
  },

  // 修改facebook广告组每日消耗
  updateAdsetEverdayCost: async (data: AdsetEverdayCostVO) => {
    return await request.put({ url: `/facebook/adset-everday-cost/update`, data })
  },

  // 删除facebook广告组每日消耗
  deleteAdsetEverdayCost: async (id: number) => {
    return await request.delete({ url: `/facebook/adset-everday-cost/delete?id=` + id })
  },

  // 导出facebook广告组每日消耗 Excel
  exportAdsetEverdayCost: async (params) => {
    return await request.download({
      url: `/facebook/adset-everday-cost/export-excel`,
      params
    })
  },

  // 查同步消耗
  syncCost: async (params: any) => {
    return await request.get({
      url: `/facebook/adset-everday-cost/syncCost`,
      params
    })
  },
  // 导入facebook广告组每日消耗 Excel
  importAdsetEverdayCost: async (
    file: File, // 将参数改为直接接收 File 对象
    params: { createName: string; creator: string; deptId: number }
  ) => {
    const formData = new FormData() // 创建 FormData 对象
    formData.append('file', file) // 将文件添加到 FormData

    // 构建请求 URL，包含 params
    const url = `/facebook/adset-everday-cost/import-excel?createName=${params.createName}&creator=${params.creator}&deptId=${params.deptId}`

    return await request.post({
      url: url, // 使用包含参数的 URL
      data: formData, // 使用 FormData 作为请求体
      headers: {
        'Content-Type': 'multipart/form-data' // 确保设置正确的 Content-Type
      }
    })
  }
}
